#ifndef __APP_BLUETOOTH_H__
#define __APP_BLUETOOTH_H__


#include "app_serial.h"

/**
 * @brief 检查蓝牙模块是否连接正常
 * 
 * @retval 0 连接正常 -1 连接异常
 */
int app_bluetooth_stat(Device *dev);


/**
 * @brief 重置蓝牙模块
 * 
 * @retval 0 成功 -1 失败
 */
int app_bluetooth_reset(Device *dev);


/**
 * @brief 设置蓝牙的MADDR
 * 
 * @param maddr 要设置的地址
 * @return 0 成功 -1 失败
 */
int app_bluetooth_setMaddr(Device *dev, char *maddr);

/**
 * @brief 设置蓝牙的NETID
 * @param netid 要设置的地址
 * @return 0 成功 -1 失败
 */
int app_bluetooth_setNetID(Device *dev, char *netid);


/**
 * @brief 设置蓝牙的波特率
 * @param baudrate 要设置的波特率
 * @return 0 成功 -1 失败
 */
int app_bluetooth_setBaudrate(Device *dev,Baudrate baudrate);


/**
 * @brief 从蓝牙设备读取数据后，调用这个方法，可以将数据帧转化为我们需要的格式
 * 
 * @param data 原始蓝牙数据的指针
 * @param len 原始蓝牙数据的长度
 * @return size_t 转化后的数据长度，0表示不用处理
 */
size_t app_bluetooth_postRead(Device *dev, char *data, size_t len);


/**
 * @brief 将数据帧转化为蓝牙数据后，调用这个方法，将蓝牙数据写入蓝牙设备
 * 
 * @param data 需要发送的数据的指针
 * @param len 需要发送的数据的长度
 * @return size_t 实际写入的数据长度，0表示不用处理
 */
size_t app_bluetooth_postWrite(Device *dev, char *data, size_t len);

#endif /* __APP_BLUETOOTH_H__ */